package ar.edu.utn.frba.disenio.aterrizar.fechas;

import org.junit.Test;
import static org.junit.Assert.*;

import ar.edu.utn.frba.disenio.aterrizar.*;
import ar.edu.utn.frba.disenio.aterrizar.fechas.Fecha;
import ar.edu.utn.frba.disenio.aterrizar.fechas.FechaInvalidaException;

public class TestFecha {
	
	 Fecha fecha1 = new Fecha();
	 Fecha fecha2 = new Fecha();
	 
	 @Test
	 public void testDondeSeteaUnaFechaValida(){
			fecha1.setearFecha(29, 2, 2012);
			assertTrue("Se debe introducir valores apropiados para dia, mes y año",(fecha1.getDia()== 29) && (fecha1.getMes() == 2) &&( fecha1.getAnio()==2012) );
	 }
	 
	 @Test (expected = FechaInvalidaException.class)
	 public void testDondeNoSeteaUnDiaInvalido(){
		 fecha1.setearFecha(29, 2, 2013);
	 }
	 
	 @Test (expected = FechaInvalidaException.class)
	 public void testDondeNoSeteaUnMesInvalido(){
		 fecha1.setearFecha(1, 13, 2012);
	 }
	 
	 @Test (expected = FechaInvalidaException.class)
	 public void testDondeNoSeteaUnAniooInvalido(){	//Consideramos anio invalido a cualquier anterior al 2012
		 fecha1.setearFecha(1, 1, 2010);
	 }
	 
	 @Test
	 public void testFecha1EsAnteriorAFecha2(){
		 fecha1.setearFecha(1, 2, 2012);
		 fecha2.setearFecha(2,3,2013);
		 assertTrue("Fecha1 debe ser anterior a Fecha2",fecha1.sosFechaAnteriorA(fecha2));
	 }
	 
	 @Test
	 public void testCalculaDiferenciaEnDiasEntreFecha1YFecha2(){
		 fecha1.setearFecha(1, 5, 2012);
		 fecha2.setearFecha(1, 6, 2012);
		 assertTrue("La diferencia no esta calculada correctamente",fecha1.diferenciaDeDias(fecha2)==31); 
	 }
}
